package ru.emms.codemeter.metrics.calculators;

import com.intellij.openapi.diagnostic.Logger;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiFile;
import ru.emms.codemeter.metrics.MetricUtils;

import java.util.Collection;

/**
 * Created by IntelliJ IDEA.
 * User: nastya.kuz
 * Date: 02.08.2010
 * Time: 14:26:36
 * Вычисление метрики "Количество интерфейсов"
 */
public class InterfaceCountMetricCalculator
        implements MetricCalculator {

    private Logger log = Logger.getInstance(getClass().getName());

    /**
     * вычисляет количество интерфейсов для данного списка исходников
     *
     * @param sources коллекция исходников
     */
    @Override
    public Long calculate(Collection<PsiFile> sources) {
        Long interfaceCount = 0L;
        for (PsiClass myClass : MetricUtils.getClassesIn(sources)) {
            if(myClass.isInterface()) {
                interfaceCount++;
            }
        }
        log.debug("количество интерфейсов: " + interfaceCount);
        return interfaceCount;
    }

    public String toString() {
        return "I";
    }

}